package com.cyh.io;

/**
 * 创建File:
 *      new File(String pathname);
 *      new File(File parent, String child);
 *      new File(String parent, String child);
 *
 * File创建新文件：
 *     createNewFile();
 *
 * 文件相关的信息： getName getAbsolutePath getParent length-文件的大小 exists isFile isDirectory
 *
 * mkdir() 创建一级目录
 * mkdirs() 创建多级目录（常用）
 * delete() 删除空目录或文件
 *
 *
 * I/O流分类：
 *    字节流： InputStream OutputStream
 *    字符流：Reader Writer
 *
 *  InputStream常用的子类：
 *     FileInputStream 文件输入流
 *     BufferedInputStream 缓冲字节输入流
 *     ObjectInputSteam 对象字节输入流
 *     ByteArrayInputStream
 *     FilterInputStream
 *     PipedInputStream
 *     PushbackInputStream
 *     DataInputStream
 *
 *  常用字符流：
 *     FileReader
 *     FileWriter
 *     CharArrayReader
 *     PipedReader
 *     StringReader
 *     BufferedReader
 *     InputStreamReader
 *     FilterReader
 *     PushbackReader
 *     PrintWriter
 *
 *
 *  BufferedReader: 其实就是对Reader的子类的封装， 封装增强Reader的功能。 处理字符, 不要去操作二进制文件
 *  BufferedWriter: 其实就是对Writer的子类的封装， 封装增强Writer的功能。  处理字符，不要去操作二进制文件
 *  BufferedInoutStream 和 BufferedOutputStream 也是对流进行封装和增强。  处理字节
 *
 *  BufferedReader关闭后，里面的真实流也会关闭，所以不需要单独去关闭真实流。
 *
 *  ObjectInputStream和ObjectOutputStream: 对象存储，文件中存储的是值和类型，如存整数1而不是字符串1.需要序列化：Serializable. 也是对流进行封装和增强，处理字节。
 *    对象存储注意的细节：
 *      1）读写顺序要一致
 *      2）要求序列化或反序列化对象，需要实现Serializable
 *      3）序列化的类中建议加上serialVersionUID,为了提升版本的兼容性
 *      4）序列化对象时，默认将里面所有属性都进行序列化，但除了static或transient修饰的成员
 *      5）序列化对象时，要求里面属性的类型也需要实现序列化接口
 *      6）序列化具备可继承性，也就是如果某类已经实现了序列化，则它的所有子类也已经默认实现了序列化。
 *
 *
 *  System.in 标准输入：编译类型是：InputStream, 运行类型是：BufferedInputStream;
 *  System.out 标准输出: 编译类型是：PrintStream 运行类型是：PrintStream;
 *  Scanner scanner = new Scanner(System.in); //标准输入流的封装和增强
 *  String = scanner.next();
 *
 *
 *  转换流
 *   InputStreamReader和OutputStreamWriter
 *   字节流转字符流
 *   乱码引出转换流
 *   字节流可以指定编码方式如utf-8. 而字符流没有。
 *   InputStreamReader(InputStream in, Charset codeType);
 *   OutputStreamWriter(OutputStream ou, Charset codeType);
 *
 *
 *   打印流： PrintStream和PrintWriter
 *   打印流只有输出流，没有输入流
 *
 *
 *
 *  Properties类处理.properties的扩展名文件
 *
 *
 * */
public class Test02 {
}
